package com.learn.elasticsearch.annotation;


import org.springframework.data.annotation.Persistent;
import org.springframework.data.elasticsearch.annotations.Document;
import java.lang.annotation.*;

/**
 * Document注解
 *
 * @author: MI
 * @email: 448341911@qq.com
 * @createTime: 2024/1/15 15:56
 * @updateUser: MI
 * @updateTime: 2024/1/15 15:56
 * @updateRemark: 修改内容
 * @version: v1.0
 */
@Persistent
@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE})
public @interface Document {
    /**
     * 索引库的名称，个人建议以项目的名称命名
     *
     * @return
     */
    String indexName();

    /**
     * 类型，7.x之后以废弃
     *
     * @return
     */
    @Deprecated
    String type() default "";

    /**
     * 默认分区数
     *
     * @return
     */
    short shards() default 1;

    /**
     * 每个分区默认的备份数
     *
     * @return
     */
    short replicas() default 1;

    /**
     * 刷新间隔
     *
     * @return
     */
    String refreshInterval() default "1s";

    /**
     * 索引文件存储类型
     *
     * @return
     */
    String indexStoreType() default "fs";

    /**
     * 是否创建索引
     *
     * @return
     */
    boolean createIndex() default true;

    /**
     * 版本
     *
     * @return
     */
    VersionType versionType() default VersionType.EXTERNAL;
}